package Z008NumberAndString.NS01ChaiZhuangBox;

public class ChaiZhuangBox {}

class TestNumber{
    // 所有的基本类型，都有对应的类类型
    // 比如int对应的类是Integer
    // 这种类就叫做封装类
    int i = 5 ;
    // 把一个基本类型的变量,转换为Integer对象
    Integer it = new Integer(i);
    // 把一个Integer对象，转换为一个基本类型的int
    int i2 = it.intValue();
}

class Number1{
    //  数字封装类有
    //  Byte,Short,Integer,Long,Float,Double
    //  这些类都是抽象类Number的子类
    public static void main(String[] args) {
        int i = 5 ;
        Integer it = new Integer(i);
        // Integer 是 Number 的子类 所以打印True
        System.out.println(it instanceof Number);
    }
}

class Number2{
    public static void main(String[] args) {
        int i = 5 ;
        // 基本类型转化为封装类型
        Integer it = new Integer(i);
    }
}

class Number3{
    public static void main(String[] args) {
        int i = 5 ;
        // 基本类型转化为封装类型
        Integer it = new Integer(i);
        // 封装类型转化为基本类型
        int i2 = it.intValue();
    }
}

class Number4{
    // 不需要调用构造方法，通过=符号自动把 基本类型 转换为 类类型 就叫装箱
    int i = 5;
    // 基本类型转换为封装类型
    Integer it = new Integer(i);
    // 自动转换就叫做装箱
    Integer it2 = i;
}

class Number5{
    // 不需要调用Integer的intValue方法，通过=就自动转换成int类型，就叫拆箱
    int i = 5;
    Integer it = new Integer(i);
    // 封装类型转化为基本类型
    int i2 = it.intValue();
    // 自动转化就叫做拆箱
    int i3 = it;
}

class Number6{
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

/**
 * 1. 对byte,short,float,double进行自动拆箱和自动装箱
 * 2. byte和Integer之间能否进行自动拆箱和自动装箱
 * 3. 通过Byte获取byte的最大值
 */
